package com.zjj.algorithm.learning.leetcode.recursion;

/**
 * 258. 各位相加 简单
 * 给定一个非负整数 num，反复将各个位上的数字相加，直到结果为一位数。返回这个结果。
 *
 *输入: num = 38
 * 输出: 2
 * 解释: 各位相加的过程为：
 * 38 --> 3 + 8 --> 11
 * 11 --> 1 + 1 --> 2
 * 由于 2 是一位数，所以返回 2。
 *
 * 示例 1:
 *
 * 输入: num = 0
 * 输出: 0
 *
 * @author zjj_admin
 * @date 2022/11/11 11:15
 */
public class AddDigits {

    public static void main(String[] args) {
        int digits = addDigits(20188);
        System.out.println("digits = " + digits);

    }


    /**
     * 时间
     * 2 ms
     * 击败
     * 26.36%
     * 内存
     * 38.8 MB
     * 击败
     * 56.96%
     *
     * @param num
     * @return
     */
    public static int addDigits(int num) {
        String s = num + "";
        int sum = 0;
        for (int i = 0; i < s.length() ; i++) {
            sum += Integer.parseInt(s.substring(i,i + 1));
        }
        if(sum >= 10){
            return addDigits(sum);
        }else {
            return sum;
        }
    }


}
